package com.sunwayhorizo.health.business.registries.place.query;

import com.sunwayhorizo.health.hl7.common.Hl7Exception;

import java.util.List;

import javax.ejb.Local;

import com.sunwayhorizo.health.hl7.rim.*;

@Local
public interface BedQueryLocal {
	
    
    /**
     * 根据工作组RIM 实体ID集合、床位状态查询床位RIM 角色集合
     * @param workGroupIds RIM工作组实体集合
     * @param status 床位状态
     * @return List<Role> 
     * @throws Hl7Exception
     */
    public List<Role> findBedRoleByWGListOrStatus(List<Object> workGroupIds,String status) throws Hl7Exception;
    
    /**
     * 根据房间好查询床位
     * @param roomId 房间号
     * @return  List<Place>
     * @throws Hl7Exception
     */
    public List<Place> findBedListByWardId(String roomId) throws Hl7Exception;
    
    /**
     * 根据工作id，床号查询出床位RIM 角色ID
     * @param workGroupId 工作组RIM 实体id
     * @param bedNo 床号
     * @return List<Long>
     * @throws Hl7Exception
     */
    public List<Long> findBedRoleIdListByWGOrBedNo(String workGroupId, String bedNo) throws Hl7Exception;
    
    /**
     * 根据工作组实体id，状态查询该工作组下面的床位
     * @param workGroupId 工作组实体id
     * @param status 床位状态 可传入参数为约定好的
     *  0：空床  1：占用   2：包床
     * @return List<Role>
     * @throws Hl7Exception
     */
    public List<Role> findBedListByWorkgroupId(String workGroupId, String status) throws Hl7Exception;
    
    
    
    
    
    
    
	/**
	 * 查询床位
	 * 
	 * @Title: findBedByBedNo
	 * @param bedNo 床位号           
	 * @return Patient 床位
	 * @throws Hl7Exception
	 * @firstAuthor Obama
	 * @firstTime 2011-03-21 16:30:15
	 * @lastAuthor Obama
	 * @lastTime 2011-03-21 16:30:15
	 */
	List<Place> findBedByBedNo(String bedNo) throws Hl7Exception;
	
	/**
	 * 查询床位
	 * 
	 * @Title: findBedByBedNo
	 * @param bedNo 床位号
	 * @param orgNo 科室号   
	 * @return Place 床位
	 * @throws Hl7Exception
	 * @firstAuthor Obama
	 * @firstTime 2011-03-21 16:30:15
	 * @lastAuthor Obama
	 * @lastTime 2011-03-21 16:30:15
	 */
	Place findBedByBedNoAndOrgNo(String bedNo,String orgNo) throws Hl7Exception;
	/**
	 * 查询床位
	 * 
	 * @Title: findBedByBedNoAndOrgRoleId
	 * @param bedNo 床位号
	 * @param orgNo 科室角色id
	 * @return Place 床位
	 * @throws Hl7Exception
	 * @firstAuthor Obama
	 * @firstTime 2011-03-21 16:30:15
	 * @lastAuthor Obama
	 * @lastTime 2011-03-21 16:30:15
	 */
	Place findBedByBedNoAndOrgRoleId(String bedNo, String RoleId)
			throws Hl7Exception;
	
	/**
	 * 查询床位
	 * 
	 * @Title: findBedPlaceByRoleId
	 * @param bedNo 床位号
	 * @return Place 床位
	 * @throws Hl7Exception
	 * @firstAuthor Obama
	 * @firstTime 2011-04-19 16:30:15
	 * @lastAuthor Obama
	 * @lastTime 2011-04-19 16:30:15
	 */
	 Place findByRoleId(String roleId) 
			throws Hl7Exception;

	Role findBedRoleByBedNoAndWorkGroupRoleId(String bedNo, String roleId)
			throws Hl7Exception;

	Role findBedRoleByBedNoAndWorkGroupEntityId(String bedNo, String entityId)
			throws Hl7Exception;

    Role findBedRoleByBedNoAndWorkGroupCode(String bedNo, String workgroupCode) throws Hl7Exception;
}
